from langchain_community.llms import Tongyi
from langchain.prompts import ChatPromptTemplate
import os


def get_video_content(key, subject, time, temperature):
    os.environ["DASHSCOPE_API_KEY"] = key

    llm = Tongyi(temperature=temperature)

    title_human_prompt_content = """
        你需要根据我提供的主题:{subject}生成一个视频标题。
    """

    title_human_prompt_template = ChatPromptTemplate.from_messages(
        [
            ('system', '你是一个专业的视频文案攥写助手。'),
            ('human', title_human_prompt_content)
        ]
    )

    title_prompt = title_human_prompt_template.invoke({'subject': subject, 'time': time, 'temperature': temperature})

    title = llm.invoke(title_prompt)

    # print(title)

    body_prompt_content = """
        根据以下视频标题以及视频时长生成一段热门视频文案。
        
        视频标题: {title}
        
        视频时长: {time}分钟
        
        # Objective(目标): #
        写一篇内容完整，层次分明，带有搞笑和与人互动的视频文案，目的在于通俗易懂地向人介绍这个视频潜在的意义。
        
        # Style(样式): #
        要求开头抓住眼球，中间提供干货内容，结尾有惊喜，脚本的格式也按照【开头，中间，结尾】分隔。
        
        # Tone(语调): #
        亲和，轻松有趣，吸引年轻人。
        
        # Audience(受众): #
        年轻人，喜欢搞笑的人群。
        
        # Response(响应): #
        层次分明，详细，简洁。
    """

    body_prompt_template = ChatPromptTemplate.from_messages(
        [
            ('human', body_prompt_content)
        ]
    )

    body_prompt = body_prompt_template.invoke({'title': title, 'time': time})

    resonse = llm.invoke(body_prompt)

    return title, resonse


get_video_content('sk-c44402d7a12c41299bb716af8d7e8bac', 'Tiktok', None, 0.5)
